As computer systems and networks continue to increase in size and complexity, so too does the challenge of managing them. A significant tool that assists network developers and administrators in managing computers across an enterprise is Windows® Management Instrumentation (WMI). WMI enables the remote management of Windows-based systems and applications by exposing management information through an object-oriented structure defined using WMI schemas. WMI schemas are an implementation of the Common Information Model (CIM) as defined by the Desktop Management Task Force (DMTF).
The CIM is an industry standard method for describing management information that relies on inheritance and other object-oriented features for the reuse and standardization of object classes representing system devices. Expressing management information through standardized object classes permits companies to develop hardware, software, and systems that can all be managed in the same way. Thus, a single management application can manage all the diverse components in an enterprise environment.
A CIM schema, made up of a well-defined collection of class definitions, was developed which many companies have agreed to follow. This schema contains a top-level set of classes applicable to all management domains. The CIM schema makes significant use of inheritance to allow management applications to treat groups of similar objects in the same way. Companies can create extension schemas that are made up of classes representing managed objects that are technology-specific additions to the CIM schema. This involves exposing management functionality through classes derived from the CIM schema. These classes typically apply to specific environments such as UNIX or the Microsoft® Windows operating system. A particular implementation of the industry standard CIM for the Windows operating system is WMI.
WMI supports the management of systems and devices by exposing management information across an enterprise, such as hardware settings, performance information, driver configurations, BIOS information, application settings, event log information, and so on, and by providing a mechanism to query for information and configure settings on machines across the enterprise. WMI provides access to management information on a single network machine, or a large number of machines all at once. For example, without WMI, an administrator wanting to enumerate descriptions for various groups of objects on a machine must locate and learn different application programming interfaces (APIs) that describe the specific methods for communicating with each group of objects. However, WMI eliminates the need to learn the specifics of every API set provided by Windows, through gathering information from a diverse set of APIs and presenting this information in a simple, industry-standard management object model.
Therefore, many comprehensive and well-documented managed resources are available to those developers and administrators capable of utilizing the benefits of WMI. However, WMI is generally designed for use by developers or administrators who are at least moderately proficient at programming in C/C++, Microsoft Visual Basic®, and scripts. For example, an administrator using WMI who wants to remotely discover system properties, such as the Last Boot Time, the NetBIOS Name, and the Service Pack Level, might write a script such as that shown in FIG. 1. The script of FIG. 1 uses WMI to walk through the ‘Win32_OperatingSystem’ object, allowing the discovery of these properties. Writing the script illustrated in FIG. 1, however, may be beyond the ability of many administrators, and the discovery of basic system information may therefore be difficult without the assistance of a more experienced programmer. In addition, much of the power of WMI is realized through developers writing management applications that monitor, configure and control the management information made available through WMI. Therefore, the benefits of WMI are often difficult to attain for the common administrator who does not have the proper programming background, but who still has a need to manage system components/objects.
In addition to needing some level of programming ability, WMI users should be generally familiar with object-oriented modeling. Understanding object-oriented modeling is important to understanding how various objects within the CIM schema, and any extension schema, relate to each other. However, even with a fair grasp of the concepts of object-oriented modeling, the extension schema that WMI exposes for Windows-based systems and applications is so large (having some 600 to 700 classes and 3000 to 4000 properties), that a non-specialist typically has difficulty understanding the schema in its raw form.
Many administrators have the need to accomplish specific tasks, such as configuring a network card or recovering a database. Having to navigate an extensive schema to locate a particular object and invoke a particular method to accomplish such a task can be difficult. The amount of information exposed by WMI is simply too unwieldy to permit many administrators to efficiently manage the network. This is another reason that the benefits of WMI are often difficult to attain for many administrators.
Accordingly, there exists a need to assist system developers and administrators in utilizing the wide variety of management features and vast amounts of management information that WMI provides.